The present invention relates to pixel matrices and more particularly to a system for performing rotation of pixel matrices.
Video image rotation is a common requirement in, for example, handheld computer systems. Image rotation is required in handheld computer systems because these handheld computer systems often include video displays, e.g., liquid crystal display (LCD) type displays, which may be physically mounted within the handheld computer system such that the raster scanlines of the display are oriented vertically with respect to the user. Video controllers scan images from memory such that each raster scanline on the display is represented within a contiguous array of memory locations. Graphics software typically draws images into video memory so that image rows are parallel to the scanning direction of the video controller, i.e., an image row is represented as a contiguous array of memory locations. If the display is oriented with vertical raster lines, then an image which is stored in video memory appears rotated by 90 degrees.
Compensating for displays having this orientation is known in the art. For example, high level software applications can be modified specifically for the system so as to transform the coordinate system from the source image as it is written. Such a modification precludes the use of off the shelf graphics software. Another software solution is to modify the display device driver to perform the system specific coordinate transformations. However, in many systems such as the Windows operating environment, the display device driver is standard and unmodifiable. Another solution is to implement image rotations in the video controller hardware. However, this solution adds additional cost to those systems which include a vertically oriented display. Another solution is to provide an operating system with a background process of rotating the image into video memory. However, this solution presents the requirement that the system for rotating the image must be efficient so that the rotation is performed quickly.